蟻本 2-3 個数制限付き部分和問題
code: python
n = int(input())
a = list(map(int, input().split()))
m = list(map(int, input().split()))
K = int(input())
dp = [-1 * (K + 1) for i in range(n + 1)] # dpi + 1j := i 番目までで j を作る際余る最大の i 番目の個数(作れない場合は -1) for i in range(n):
for j in range(K + 1):
# 既にできてる
# 個数は減らない
# 数aiが大きすぎる、または、ai足したとしてもj作れない
elif j < ai or dpi + 1[j - ai] <= 0: else:
print("Yes")
else:
print("No")
テーマ